// utils/uniqueId.js

import cache from '@/utils/cache'

function generateBrowserHash() {
    const browserInfo = navigator.userAgent; // 获取浏览器的 userAgent
    const screenInfo = `${window.screen.width}x${window.screen.height}`; // 屏幕分辨率
    const rawString = `${browserInfo}-${screenInfo}`; // 组合信息
  
    // 生成哈希值（将字符转换为数字）
    let hash = 0;
    for (let i = 0; i < rawString.length; i++) {
      hash = (hash << 5) - hash + rawString.charCodeAt(i);
      hash |= 0; // 转为32位整数
    }
  
    return Math.abs(hash); // 返回正数
  }
  
  function generateNumericId() {
    const browserHash = generateBrowserHash(); // 浏览器唯一标识
    const timestamp = Date.now().toString().slice(-6); // 精简的时间戳后 6 位
    const randomNum = Math.floor(Math.random() * 100000); // 5 位随机数
  
    // 拼接浏览器标识 + 时间戳 + 随机数
    return `${browserHash}${timestamp}${randomNum}`;
  }
  export function getUserUniqueId() {
    const localStorageKey = 'user_unique_id';
  
    // 检查 LocalStorage 是否已有 ID
    let userId = cache.local.get(localStorageKey);
    if (!userId) {
      userId = generateNumericId();
      cache.local.set(localStorageKey, userId); // 保存到 LocalStorage
    }
  
    return userId;
  }
  